Tenemos un dataset con riqueza de especies en las islas Galápagos. Nos preguntamos si hay un efecto de las variables: área de la isla, elevación máxima de la isla y distancia a la isla más próxima en la riqueza de especies.
Variables:
Area: área de la isla
Elevation: elevación máxima de la isla
Nearest: distancia isla más próxima
Species: riqueza de especies
Pasos que seguir
Instalar y cargar el paquete faraway (data(gala))
Representar gráficamente relación variable respuesta con las variables explicativas y correlación variables
library(ggplot2)library(patchwork)plot1 <-ggplot(data = gala, aes(x = Area , y = Species)) +geom_point(color ="blue", size =1.5) +labs(x ="Área de la isla", y ="Riqueza de especies", title ="Relación entre riqueza de especies y área de la isla" ) +theme_minimal() plot2 <-ggplot(data = gala, aes(x = Elevation , y = Species)) +geom_point(color ="red", size =1.5) +labs(x ="Elevación de la isla", y ="", title ="Relación entre riqueza de especies y elevación de la isla" ) +theme_minimal()plot3 <-ggplot(data = gala, aes(x = Nearest , y = Species)) +geom_point(color ="darkgreen", size =1.5) +labs(x ="Distancia isla más próxima", y ="", title ="Relación entre riqueza de especies y distancia isla más próxima" ) +theme_minimal()
Analysis of Variance Table
Response: Species
Df Sum Sq Mean Sq F value Pr(>F)
Area 1 145470 145470 22.2592 7.076e-05 ***
Elevation 1 65664 65664 10.0476 0.003882 **
Nearest 1 29 29 0.0045 0.947179
Residuals 26 169918 6535
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
4. Comprobación supuestos del modelo
par(mfcol=c(2,2))plot(lm.gal0)
Ausencia de homocedasticidad, normalidad y linealidad. Y valores atípicos.No sirve modelo.
Factor de inflación de la varianza (VIF)
Cómo incrementa la varianza de un coeficiente estimado del modelo de regresión cuando los predictores están correlacionados entre sí
library(car)vif(lm.gal0)
Area Elevation Nearest
2.373470 2.344460 1.025189
Transformación variable respuesta
gala$log_Sp <-log(gala$Species)plot1 <-ggplot(data = gala, aes(x = Area , y = log_Sp)) +geom_point(color ="blue", size =1.5) +labs(x ="Área de la isla", y ="Riqueza de especies", title ="Relación entre riqueza de especies y área de la isla" ) +theme_minimal() plot2 <-ggplot(data = gala, aes(x = Elevation , y = log_Sp)) +geom_point(color ="red", size =1.5) +labs(x ="Elevación de la isla", y ="", title ="Relación entre riqueza de especies y elevación de la isla" ) +theme_minimal()plot3 <-ggplot(data = gala, aes(x = Nearest , y = log_Sp)) +geom_point(color ="darkgreen", size =1.5) +labs(x ="Distancia isla más próxima", y ="", title ="Relación entre riqueza de especies y distancia isla más próxima" ) +theme_minimal()
plot1 + plot2 + plot3
Sigue sin ser lineal la relación.
Transformación variables predictoras
gala$log_area <-log(gala$Area)gala$log_elevacion <-log(gala$Elevation)gala$log_near <-log(gala$Nearest)plot1 <-ggplot(data = gala, aes(x = log_area , y = log_Sp)) +geom_point(color ="blue", size =2) +labs(x ="Área de la isla", y ="Riqueza de especies", title ="Relación entre riqueza de especies y área de la isla" ) +theme_minimal() plot2 <-ggplot(data = gala, aes(x = log_elevacion , y = log_Sp)) +geom_point(color ="red", size =2) +labs(x ="Elevación de la isla", y ="", title ="Relación entre riqueza de especies y elevación de la isla" ) +theme_minimal()plot3 <-ggplot(data = gala, aes(x = log_near , y = log_Sp)) +geom_point(color ="darkgreen", size =2) +labs(x ="Distancia isla más próxima", y ="", title ="Relación entre riqueza de especies y distancia isla más próxima" ) +theme_minimal()
Call:
lm(formula = log_Sp ~ log_area, data = gala)
Residuals:
Min 1Q Median 3Q Max
-1.5442 -0.4001 0.0941 0.5449 1.3752
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.9037 0.1571 18.484 < 2e-16 ***
log_area 0.3886 0.0416 9.342 4.23e-10 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.7842 on 28 degrees of freedom
Multiple R-squared: 0.7571, Adjusted R-squared: 0.7484
F-statistic: 87.27 on 1 and 28 DF, p-value: 4.23e-10
log(Species) = 2.9 + 0.39 log(Area)
Gráfico de predicciones
library(broom)library(tidyverse)library(dplyr)preds <-augment(lm.gal3, type.predict ="response", se_fit =TRUE)preds <- preds %>%mutate(lower = .fitted -1.96* .se.fit,upper = .fitted +1.96* .se.fit)ggplot(data = preds, aes(x = log_area, y = log_Sp)) +geom_point(color ="blue", size =2) +geom_line(aes(y = .fitted)) +geom_ribbon(aes(ymin = lower, ymax = upper), alpha =0.2) +labs(x ="Área de la isla", y ="Riqueza de especies", title ="Predicciones modelo de regresión" ) +theme_minimal()
Ejercicio 2: Modelo factorial
Tenemos un dataset con biomasa leñosa en un área mediterránea. Nos preguntamos si hay un efecto de la variable cobertura arbórea considerando dos niveles de sequía estival.
Variables:
biomasa: biomasa leñosa
cobertura: cobertura arbórea
sequia: sequía o lluvia estival
Pasos que seguir
Cargar los datos (cobertura.csv)
Representar gráficamente relación variable respuesta con las variables explicativas